#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "configparser.h"
#include "parser.h"
#include "ALGConfiguration.h"
#include "graph.h"

/**il test verifica che il parser funzioni correttamente. per eseguirlo bisogna passare come unico parametro
 * dell'eseguibile il file da parserizzare. In uscita torna la matrice delle adiacenze
 *
 */
int main(int argn,const char** args){
	FILE* fgraph;
	FILE* fconfig;
	Pgraph graph;
	int __N__;
	int i=0;
	/*printf("numero di parametri passati: %d\n",argn);
	for (i=0;i<argn;i++){
		printf("%s\n",args[i]);
	}*/
	if (argn==2){
		//fgraph=fopen(args[1],"r");
		fconfig=fopen(args[1],"r");
	}else{
		printf("numero di parametri passati errati.\n");
		return EXIT_FAILURE;
	}
	printf("apro il file di configurazione...\n");
	PalgConfiguration config=parseConfigurationFile(fconfig);
	printf("stampo\n");
	printAlgConfiguration(stdout,config);
	printf("parso il file... %s \n",config->graphPath);
	fgraph=fopen(config->graphPath,"r");
	if (fgraph==NULL){
		printf("fgraph NULL!\n");
		return 0;
	}
	graph=parseGraph(fgraph,&__N__);
	printf("parsing finito!\n");
	printGraph(stdout,graph);
	printf("controllo le disugaglianze triangolari...\n");
	graphCorrector(graph);
	//DEALLOCO
	freeAlgConfiguration(config);
	return 0;
}
